PHP Local File Inclusion
PHP
において
include
や
require
などの関数で任意のファイルをincludeできてしまう脆弱性
PHP LFIは
Remote Code Execution
をするために攻撃者が自由に操作できるファイルが必要であるので、以前はサーバーに都合のいいファイルを生成するテクニックが研究されていた
有名なのはOne Line PHP Challenge - HITCON 2018
https://blog.orange.tw/2018/10/hitcon-ctf-2018-one-line-php-challenge.html?m=1
他にも色々ある:
https://book.hacktricks.xyz/pentesting-web/file-inclusion#lfi2rce
しかし、長年のCTFerの探求により
ファイルの操作なしに
Remote Code Execution
が可能
と判明した
つまり、
include_once($_GET["q"])
だけでRCEができる
hxp ctf 2021 - includer's revengeでloknop氏が発見した
https://gist.github.com/loknop/b27422d355ea1fd0d90d6dbc1e278d4d
PHP Filter
を用いて任意の文字列をincludeさせることができる
また、
PHP Filter
を利用してブラインドにファイル内容をリークする手法も発見された
PHP Filter
を参照